function r = symint(expr, varargin)
    % 求解符号积分
    % symint(expr, var) 求解表达式expr关于变量var的不定积分。
    % symint(expr, var, a, b) 求解表达式关于变量var在区间 [a, b] 上的定积分。
    % symint(expr, var1, a1, b1, var2, a2, b2) 求解多重积分。
    % >> E = sym(e)
    % >> [x y] = syms('x y');
    % >> symint(E^(-x^2-y^2),x,-inf,inf,y,-inf,inf)
    % >> pi
    sp = sympy_sp();
    integrate = sp.integrate;
    if nargin == 2
        r = integrate(expr, varargin{1});
        r.simplify();
    elseif nargin > 1 && mod(nargin, 3) == 1
        nvars = nargin / 3;
        vars = cell(1, nvars);
        for i = 1:nvars
            idx = 3 * (i - 1) + 1;
            vars{i} = pytuple(sym(varargin{idx}), sym(varargin{idx + 1}), sym(varargin{idx + 2}));
        end
        r = integrate(expr, vars{:});

        r.simplify();
    else
        error("输入参数个数不正确。");
    end
end